package com.real8.romemp.client.ui;

import com.google.gwt.user.client.ui.IsWidget;
import com.real8.romemp.client.place.LabourAllocationPlace.EMenuSelection;

/**
 * 
 * @author Rutger van der Eijk
 * 
 */
public interface LabourAllocationView extends IsWidget {
	public interface Presenter {
		/**
		 * On an attempt to select a menu option
		 * 
		 * @param selection
		 */
		void onSelected(EMenuSelection selection);

		/**
		 * On an answer to the allocate labor question
		 */
		void onAllocationAnswer(int allocation);
	}

	void setPresenter(Presenter presenter);

	/**
	 * Hide all individual elements
	 */
	void hideAll();

	/**
	 * Show menu with supplied data
	 * 
	 * @param unallocated
	 */
	void showMenu(int unallocated);

	/**
	 * Show allocate labor question corresponding to selected menu
	 * 
	 * @param selection
	 */
	void showAllocationQA(EMenuSelection selection);

	/**
	 * Show that labour has been fully allocated
	 */
	void showFullyAllocated();

	/**
	 * Show yearly report
	 * 
	 * @param yearBC
	 *            years before Christ
	 * @param population
	 * @param armyUnits
	 * @param auxilia
	 * @param warships
	 * @param marines
	 * @param merchantShips
	 * @param merchants
	 * @param shipBuilders
	 * @param artisans
	 * @param freeLabour
	 * @param treasury
	 * @param foodReserve
	 * @param foodNeed
	 */
	void showYearlyReport(int yearBC, int population, int armyUnits,
			int auxilia, int warships, int marines, int merchantShips,
			int merchants, int shipBuilders, int artisans, int freeLabour,
			int treasury, int foodReserve, int foodNeed);
}
